<?php
$base_path = './';
$admin_path = '../';
$main_path = '../../';
$columns = array('kierunek','symbol','p','s','w','z','f','g','dzien','godzin',
    'godz_od','sala','tytul','imie','nazwisko','mc','przedmiot_skrot','przedmiot');//nazwy poszczególnych kolumn pliku CSV

$filename = $_FILES['file']['tmp_name'];
function pg_time($time){
  if($time){
    $pattern = '/([0-9][0-9])\.([0-9][0-9])/';
    $replacement = '$1:$2:00';
    $pg_time= preg_replace($pattern, $replacement, $time);
   }
   else{
    $pg_time = '00:00:00';
   }
date( 'H:i:s', $pg_time );
return $pg_time;
}

function pg_bool($subject){
    if($subject=='W'){
        return 'TRUE';
    }
    else{
        return 'FALSE';
    }
}
if(isset($_POST['import'])){
if(is_uploaded_file($filename)) {

    require_once($main_path. "dbConnection.php");
    require_once($admin_path ."model/Kierunki.php");
    require_once($admin_path ."model/Przedmioty.php");
    require_once($admin_path ."model/Prowadzacy.php");
    require_once($admin_path ."model/GrupaZajeciowa.php");
    //pobranie danych z pliku i zapisanie w zmiennej $data
     $handle = fopen("$filename", "r");
     $i = 0;
     while (($data = fgetcsv($handle, 100000, ",")) !== FALSE){
         foreach($columns as $key=>$column){
             $data_from_csv[$i][$column] = $data[$key];
         }
         $i++;
     }
     unset($data_from_csv[0]); //usunięcie nazw kolumn z pliku, czyli pierwsza linijka
     fclose($handle);
    foreach($data_from_csv as $value){
    //wczytanie danych prowadzacego
        $lecturer_model = new Model_Prowadzacy();
        $id_lecturer = $lecturer_model->getID($value['imie'],$value['nazwisko']);
        if(is_null($id_lecturer)){
            $lecturer_model->insert($value['imie'], $value['nazwisko'], $value['tytul']);
            $id_lecturer = $lecturer_model->getID($value['imie'],$value['nazwisko']);
         }
                 
   //wczytanie danych dla przedmiotu
         if($value['f']=='W'){  //jesli to wykład
             $cw_h = 0;
             $wyk_h=(int)$value['godzin'];
         }
         elseif($value['f']=='C'){ //jeśli to ćwiczenia
            $wyk_h = 0;
            $cw_h=(int)$value['godzin'];
         }

      //sprawdzenie czy dany przedmiot istnieje już w bazie, jeśli tak to pobieram jego ID, jeśli nie to najpierw zapisuje do bazy
        $subject_model = new Model_Przedmioty();
        $id_subject = $subject_model->getID($value['przedmiot_skrot']);
//    $query_id_subject="SELECT id FROM przedmiot WHERE nazwa_skrot='".$value['Przedmiot']."' AND wyk_h='".$wyk_h."' AND cw_h='".$cw_h."'";
//    $result_id_subject = pg_query($db,$query_id_subject);
//    unset($id_przedmiot);
//    $id_przedmiot = pg_fetch_assoc($result_id_subject);
          if(is_null($id_subject)){
                $subject_model->insert($value['przedmiot_skrot'], $value['przedmiot'], $wyk_h, $cw_h, '', '', '');
                $id_subject = $subject_model->getID($value['przedmiot_skrot']);
      }
      //wczytanie danych dla grup zajęciowych
         $occupied_space=0; //liczba zajętych miejsc
         $gr_model = new Model_GrupaZajeciowa();
       //  ('$id_przedmiot', '$id_prowadzacy', '$wyk_cw', '$nazwa','$dzien','$godz_od', '$godz_do','$sala', '$miejsca','$miejsca_zajete')";
    // var_dump($id_subject, $id_lecturer, pg_bool($value['f']),$value['z'].$value['f'].$value['g'],$value['dzien'], pg_time($value['godz_od']),
      //          '00:00:00', $value['sala'], $value['mc'], $occupied_space);
         $gr_model->insert($id_subject, $id_lecturer, pg_bool($value['f']),$value['z'].$value['f'].$value['g'],$value['dzien'], pg_time($value['godz_od']),
                '00:00:00', $value['sala'], $value['mc'], $occupied_space);
      }
      //stworzenie powiazania miedzy ćwiczeniami i wykładem (dbo.CwiczeniaDoWykladu)
      $lectures = $gr_model->getAllWykłady();
      foreach($lectures as $lecture){
        $labs = $gr_model->searchCwiczeniaForWyklad($lecture['przedmiot_id'], $lecture['nazwa']);
        if($labs){
        foreach($labs as $lab){
            if($lab['id']!='')
            $gr_model->insertConectionCwiczeniaForWyklad($lecture['id'], $lab['id']);
        }}
      }
        $message = '<p style="color: green">Import zakończony sukcesem!</p>';

}else{
        $message = '<p style="color: red">Import się nie powiódł! </p>';
}
}

require_once($admin_path."view/import_plan.php");
?>
